场景说明
当 Linux 系统磁盘空间不足时,需要添加新磁盘并扩展到现有的逻辑卷中。本文以 Ubuntu 系统为例,演示从添加物理磁盘到扩容逻辑卷的完整流程。
第一步:确认当前磁盘状态
# 查看当前磁盘使用情况
df -Th
# 查看所有物理磁盘
fdisk -l
bash
添加新磁盘前,fdisk -l 只显示一块物理磁盘。添加后会出现新的磁盘设备。
第二步:对新磁盘进行分区
使用 fdisk 对新磁盘创建分区:
# 进入 fdisk 交互界面(替换为实际磁盘路径)
fdisk /dev/nvme0n2
bash
fdisk 交互操作步骤
Command (m for help): m # 查看帮助菜单
Command (m for help): n # 创建新分区
Partition type: p # 选择主分区(Primary)
Partition number: 1 # 分区编号,默认 1
First sector: 2048 # 起始扇区,默认即可
Last sector: <默认值> # 结束扇区,使用全部空间
Command (m for help): t # 设置分区类型
Hex code: 8e # 8e = Linux LVM(逻辑卷)
Command (m for help): w # 保存并退出
text
关键参数说明
| 步骤 | 命令 | 说明 |
|---|---|---|
| 查看帮助 | m | 列出所有可用命令 |
| 新建分区 | n | 创建新分区 |
| 选主分区 | p | Primary(最多 4 个主分区) |
| 设分区类型 | t | 设置分区类型 |
| LVM 类型 | 8e | Linux LVM 逻辑卷类型 |
| 保存退出 | w | 写入分区表并退出 |
使分区生效
# 通知内核重新读取分区表
partprobe
bash
验证分区是否创建成功:
fdisk -l
# 应出现新的 Device,类型为 Linux LVM
bash
第三步:格式化新分区
# 使用 ext4 文件系统格式化
mkfs -t ext4 /dev/nvme0n2p1
bash
注意:格式化的路径是新创建的分区路径(如
nvme0n2p1),不是物理磁盘路径(如nvme0n2)。
第四步:将新分区添加到逻辑卷组
查看当前逻辑卷状态
# 查看物理卷信息
pvs
# 查看逻辑卷信息
lvs
# 查看逻辑卷详细路径
lvdisplay
bash
将新分区加入卷组
# 扩展卷组(VG_NAME 为 pvs 中显示的 VG 名称)
vgextend <VG_NAME> /dev/nvme0n2p1
# 例如:
vgextend ubuntu-vg /dev/nvme0n2p1
bash
验证:
pvs
# 应显示两个 PV 属于同一个 VG
bash
第五步:扩展逻辑卷
方式一:指定大小扩展
# 扩展指定大小(如 44.99G)
lvextend -L +44.99G <LV_PATH> /dev/nvme0n2p1
bash
方式二:使用全部剩余空间
# 将所有剩余空间分配给逻辑卷
lvextend -l +100%FREE <LV_PATH> /dev/nvme0n2p1
bash
注意:
<LV_PATH>是lvdisplay中显示的 LV Path,不是df -Th中显示的路径。
第六步:让扩展立即生效
# 在线调整文件系统大小
resize2fs <LV_PATH>
# 例如:
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
bash
最终验证
df -Th
# Size 列应显示扩展后的总容量
bash
完整操作流程总结
fdisk -l # 1. 确认新磁盘存在
|
fdisk /dev/xxx # 2. 创建分区
→ n (新建) → p (主分区) → 8e (LVM类型) → w (保存)
|
partprobe # 3. 使分区生效
|
mkfs -t ext4 /dev/xxx # 4. 格式化分区
|
vgextend <VG_NAME> /dev/xxx # 5. 加入卷组
|
lvextend -l +100%FREE <LV_PATH> # 6. 扩展逻辑卷
|
resize2fs <LV_PATH> # 7. 在线扩容生效
|
df -Th # 8. 验证结果
text
常用命令速查
| 命令 | 功能 |
|---|---|
fdisk -l | 查看所有磁盘和分区 |
fdisk /dev/xxx | 对指定磁盘进行分区操作 |
partprobe | 通知内核重读分区表 |
mkfs -t ext4 /dev/xxx | 格式化为 ext4 文件系统 |
pvs | 查看物理卷 |
vgs | 查看卷组 |
lvs | 查看逻辑卷 |
lvdisplay | 查看逻辑卷详细信息(含路径) |
vgextend <VG> <PV> | 将物理卷加入卷组 |
lvextend -l +100%FREE <LV> <PV> | 扩展逻辑卷 |
resize2fs <LV> | 在线调整文件系统大小 |
df -Th | 验证磁盘空间 |
↑